package com.hhh.Controller;

import com.hhh.Dto.SetmealDto;
import com.hhh.ExceptionHandle.SetmealException;
import com.hhh.Pojo.Result;
import com.hhh.Service.SetmealService;
import jakarta.websocket.server.PathParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Slf4j
@RequestMapping("/setmeal")
public class SetmealContorller {

    @Autowired
    SetmealService setmealService;

    //    分页查询套餐
//    查询套餐
//    查询套餐
    @GetMapping("/page")
    public Result SelectAll(@RequestParam long page, @RequestParam long pageSize, String name) {
        log.info("查询套餐");
        return Result.success(setmealService.SelectAll(page, pageSize, name));
    }

    //    添加套餐
//    添加套餐
//    添加套餐
    @PostMapping()
    public Result Insert(@RequestBody SetmealDto setmealDto) {
        log.info("添加套餐");
        setmealService.Insert(setmealDto);
        return Result.success("添加了一个套餐");
    }

    //    更改setmeal的status
//    更改setmeal的status
//    更改setmeal的status
    @PostMapping("/status/{status}")
    public Result Updatestatus(@PathVariable Integer status, @RequestParam List<Long> ids) {
        log.info("更改setmeal的status");
        return Result.success("停售的套餐数" + setmealService.Updatestatus(status, ids));
    }

    //    删除套餐
//    删除套餐
//    删除套餐
    @DeleteMapping()
    public Result Delete(@RequestParam List<Long> ids) {
        int num = setmealService.DeleteById(ids);
        if (num == 0) {
            log.info("删除套餐失败");
            throw new SetmealException("套餐未停售");
        }
        log.info("删除套餐");
        return Result.success("删除的套餐数" + num);
    }

    //    查询套餐
//    查询套餐
//    查询套餐
    @GetMapping("/{id}")
    public Result SelectById(@PathVariable long id) {
        return Result.success(setmealService.SelectById(id));
    }

    //    更新套餐
//    更新套餐
//    更新套餐
    @PutMapping()
    public Result Update(@RequestBody SetmealDto setmealDto) {
        return Result.success(setmealService.Update(setmealDto));
    }

    // @GetMapping("/dish/{id}")
}
